package com.ruoyi.web.service.impl;

import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.web.domain.LegalTender;
import com.ruoyi.web.enums.CommonDictEnum;
import com.ruoyi.web.mapper.LegalTenderMapper;
import com.ruoyi.web.service.ILegalTenderService;
import com.ruoyi.web.utils.CommonUtil;
import lombok.AllArgsConstructor;
import org.springframework.stereotype.Service;

import java.util.List;

/**
 * 法币Service业务层处理
 *
 * @date 2023-03-15
 */
@Service
@AllArgsConstructor
public class LegalTenderServiceImpl implements ILegalTenderService {
    private final LegalTenderMapper legalTenderMapper;
    private final CommonUtil commonUtil;

    /**
     * 查询法币
     *
     * @param id 法币主键
     * @return 法币
     */
    @Override
    public LegalTender selectLegalTenderById(Long id) {
        return legalTenderMapper.selectLegalTenderById(id);
    }

    /**
     * 查询法币列表
     *
     * @param legalTender 法币
     * @return 法币
     */
    @Override
    public List<LegalTender> selectLegalTenderList(LegalTender legalTender) {
        List<LegalTender> list = legalTenderMapper.selectLegalTenderList(legalTender);

        // 遍历
        list.forEach(i -> {
            // 翻译字典想
            i.setStatus(CommonDictEnum.Status.findName(i.getStatus()));
        });

        return list;
    }

    /**
     * 新增法币
     *
     * @param legalTender 法币
     * @return 结果
     */
    @Override
    public int insertLegalTender(LegalTender legalTender) {
        commonUtil.initCreateAbout(legalTender);
        return legalTenderMapper.insertLegalTender(legalTender);
    }

    /**
     * 修改法币
     *
     * @param legalTender 法币
     * @return 结果
     */
    @Override
    public int updateLegalTender(LegalTender legalTender) {
        legalTender.setUpdateTime(DateUtils.getNowDate());
        return legalTenderMapper.updateLegalTender(legalTender);
    }

    /**
     * 批量删除法币
     *
     * @param ids 需要删除的法币主键
     * @return 结果
     */
    @Override
    public int deleteLegalTenderByIds(Long[] ids) {
        return legalTenderMapper.deleteLegalTenderByIds(ids);
    }

    /**
     * 删除法币信息
     *
     * @param id 法币主键
     * @return 结果
     */
    @Override
    public int deleteLegalTenderById(Long id) {
        return legalTenderMapper.deleteLegalTenderById(id);
    }

    /**
     * 选项
     *
     * @return {@link List< LegalTender>}
     * @since 2023/3/26 16:32
     */
    @Override
    public List<LegalTender> optionList() {
        LegalTender condition = new LegalTender();
        condition.setStatus(CommonDictEnum.Status.NORMAL.getValue());

        return legalTenderMapper.optionList(condition);
    }
}
